/***********************************************************************************
 * 文件名： spwm_config.h
 * 版本： 2
 * 说明：
 * 		一个软件模拟的8位PWM控制器。
 *      在定时器中断中调用 SPwm_EvTimer ，PWM频率 = 中断频率/255。在程序启动时调用 SPwm_Init
 *  进行初始化。通过调用 SPwm_SetValue 设置PWM值（决定占空比），为0是始终输出OFF，为255时始
 *  终输出ON。ON 和 OFF 具体代表什么在配置文件中设置。还提供了开始和停止运行的API，以及刹车
 *  等API，具体见头文件。
 * 修改记录：
 * 	2021/04/21: 初版。 刘言。
 *  2022/06/06: 新增配置各个通道初始值。刘言。
***********************************************************************************/
#ifndef _SPWM_CONFIG_H_
#define _SPWM_CONFIG_H_

// 仅包含需要的文件，polsys驱动和组件接口不需要再包含头文件。
#include "hard_wire.h"


// 定义PWM满值
// 100%输出时的值，不可以超过255。建议取值：63、127、255.
#define _SPWM_FULL_VALUE    127

// 软件PWM的通道数
#define SPWM_MAX_CH     2

// 各个通道的初值，并不是都需要设置，取决于通道数

#define _SPWM_CH0_INIT_VALUE    0
#define _SPWM_CH1_INIT_VALUE    0
#define _SPWM_CH2_INIT_VALUE    0
#define _SPWM_CH3_INIT_VALUE    0
#define _SPWM_CH4_INIT_VALUE    0
#define _SPWM_CH5_INIT_VALUE    0



// 各个通道的开关内容，并不是都需要设置，取决于通道数

#define _SPwm_Ch0On()       LED_S_ON
#define _SPwm_Ch0Off()      LED_S_OFF

#define _SPwm_Ch1On()       OUTEN_ON
#define _SPwm_Ch1Off()      OUTEN_OFF

#define _SPwm_Ch2On()       
#define _SPwm_Ch2Off()      

#define _SPwm_Ch3On()       
#define _SPwm_Ch3Off()      

#define _SPwm_Ch4On()       
#define _SPwm_Ch4Off()      

#define _SPwm_Ch5On()   
#define _SPwm_Ch5Off()   


// 定时器初始化，在软PWM初始化时被调用
#define _SPwm_TimInit()     Tim2_Init()




// 使能匹配事件
// 当PWM计数变量与 _SPWM_MATCH_VALUE 相等时调用 _SPwm_Ev_Match
#define _SPWM_USE_MATCH_EVENT   // 当使用软件PWM控制输出时，要启用匹配事件
    #define _SPWM_MATCH_VALUE   0
    #define _SPwm_Ev_Match()    \
    {\
        if(SPwm_GetValue(1) > 0) RHC_EvPWMOutON();\
    }



#endif


